home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / cyberxxxsrc / cyberavi / txt / cyberaviutils.mod < prev    next >
Text File  |  1999-02-08  |  3KB  |  89 lines

  1. MODULE  CyberAVIUtils;
  2.  
  3. (* $IFNOT DEBUG *)
  4.   (* $StackChk- $OvflChk- $RangeChk- $CaseChk- $ReturnChk- $NilChk- $TypeChk- $OddChk- $ClearVars- *)
  5. (* $END *)
  6.  
  7. (* /// ------------------------------- "IMPORT" -------------------------------- *)
  8. IMPORT  aio:=AsyncIO,
  9.         d:=Dos,
  10.         e:=Exec,
  11.         lv:=LibraryVer,
  12.         ol:=OberonLib,
  13.         u:=Utility,
  14.         y:=SYSTEM;
  15. (* \\\ ------------------------------------------------------------------------- *)
  16.  
  17. (* /// -------------------------------- "TYPE" --------------------------------- *)
  18. TYPE    Array4=ARRAY 4 OF SHORTINT;
  19.         Array2=ARRAY 2 OF SHORTINT;
  20. (* \\\ ------------------------------------------------------------------------- *)
  21.  
  22. (* /// ------------------------ "PROCEDURE PrintFCC()" ------------------------- *)
  23. PROCEDURE PrintFCC * (fcc: LONGINT);
  24.  
  25. TYPE    arr=ARRAY 4 OF CHAR;
  26.  
  27. VAR     data: arr;
  28.         null: LONGINT;
  29.  
  30. BEGIN
  31.   null:=0;
  32.   data:=y.VAL(arr,fcc);
  33.   d.PrintF("%s ($%08lx)",y.ADR(data),fcc);
  34. END PrintFCC;
  35. (* \\\ ------------------------------------------------------------------------- *)
  36.  
  37. (* /// --------------------- "PROCEDURE PrintChunkHead()" ---------------------- *)
  38. PROCEDURE PrintChunkHead * (id,size: LONGINT);
  39. BEGIN
  40.   d.PrintF("id: ");
  41.   PrintFCC(id);
  42.   d.PrintF(" size: $%08lx (%10ld)",size,size);
  43. END PrintChunkHead;
  44. (* \\\ ------------------------------------------------------------------------- *)
  45.  
  46. (* /// --------------------------- "PROCEDURE oom()" --------------------------- *)
  47. PROCEDURE oom();
  48.  
  49. VAR     errStr: e.STRING;
  50.         prg: e.STRING;
  51.  
  52. BEGIN
  53.   y.SETREG(0,d.GetProgramName(prg,SIZE(prg)));
  54.   y.SETREG(0,d.Fault(d.noFreeStore,prg,errStr,SIZE(errStr)));
  55.   d.PrintF("%s\n",y.ADR(errStr));
  56.   HALT(5);
  57. END oom;
  58. (* \\\ ------------------------------------------------------------------------- *)
  59.  
  60. (* /// ------------------------- "PROCEDURE AddPtr()" -------------------------- *)
  61. PROCEDURE AddPtr * (VAR ptr: e.APTR;
  62.                     add: LONGINT);
  63. BEGIN
  64.   ptr:=y.VAL(e.APTR,y.VAL(LONGINT,ptr)+add);
  65. END AddPtr;
  66. (* \\\ ------------------------------------------------------------------------- *)
  67.  
  68. (* /// ---------------------- "PROCEDURE CheckVersions()" ---------------------- *)
  69. PROCEDURE CheckVersions * (dummy: ARRAY OF CHAR); (* $CopyArrays- *)
  70. BEGIN
  71.   IF ~lv.CheckVersion(y.ADR(e.SysBase.libNode),39,0) THEN
  72.     d.PrintF("CyberAVI needs at least AmigaOS 3.0 (V39)\n");
  73.     HALT(0);
  74.   END;
  75.   IF ~(e.m68020 IN e.SysBase.attnFlags) THEN
  76.     d.PrintF("CyberAVI needs at least MC68020\n");
  77.     HALT(0);
  78.   END;
  79.   IF ~lv.CheckVersion(aio.base,39,0) THEN
  80.     d.PrintF("CyberAVI needs asyncio.library V39+\n");
  81.     HALT(0);
  82.   END;
  83. END CheckVersions;
  84. (* \\\ ------------------------------------------------------------------------- *)
  85.  
  86. BEGIN
  87.   ol.OutOfMemHandler:=oom;
  88. END CyberAVIUtils.
  89.